package com.bayair.doctor.ui.login;

import com.bayair.doctor.data.bean.IMSignKey;
import com.bayair.doctor.mvp.IView;
import com.bayair.doctor.data.bean.LoginResp;
import com.bayair.doctor.data.bean.VerityResp;
import com.bayair.doctor.net.BaseEntity;

import io.reactivex.Observable;

/**
 * Author: tuyrt7
 * Date: 2019/9/29 9:55
 * Description:
 */
public interface LoginContract {

    interface Model {
        Observable<BaseEntity<LoginResp>> login(String phone, String verifyCode);

        Observable<BaseEntity<VerityResp>> verity(String phone);

        Observable<BaseEntity<IMSignKey>> getSignKey(String token);
    }

    interface View extends IView {
        /**
         获取输入的手机号码
         @return
         */
        String getPhoneNum();

        /**
         获取输入的验证码
         @return 验证码
         */
        String getAuthCode();

        /**
         是否勾选同意协议
         @return
         */
        boolean isCheckAgree();

        /**
          未勾选通知
         */
        void notifyNoCheck();

        /**
         手机校验号校验未通过，重置验证码发送按钮状态
         */
        void resetVerity();

        /**
          登录成功时通知
         */
        void loginSuccess();

        /**
          登录失败通知
         @param msg 失败消息（已经toast）
         */
        void loginFail(String msg);
    }

    interface Presenter {
        void verity();

        void login();
    }

}
